package com.bdqn.sys.dao;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.bdqn.sys.entity.User;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bdqn.sys.vo.UserVo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.io.Serializable;
import java.util.Set;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author KazuGin
 * @since 2020-04-23
 */
public interface UserMapper extends BaseMapper<User> {

    /**
     * 分页查询用户列表
     * @param page
     * @param uservo
     * @return
     */
    IPage<User> findUserListByPage(@Param("page") IPage<User> page,@Param("user") UserVo uservo);



    @Delete("delete from sys_role_user where uid=#{id}")
    void deleteUserAndRole(Serializable id);

    /**
     * 根据用户idc查询该用户拥有的角色列表
     * @param id
     * @return
     */
    @Select("select rid from sys_role_user where uid=#{id}")
    Set<Integer> findUserRoleByUserId(Integer id);

    /**
     * 添加用户角色关系
     * @param userId
     * @param id
     */
    @Insert("insert into sys_role_user (uid,rid) values(#{userId},#{roleId})")
    void insertUserRole(@Param("userId") Integer userId,@Param("roleId") String id);
}
